Запрос «Регистрация QR-кода для привязки счёта/подписки по СБП» позволяет Плательщику выполнить привязку своего банковского счёта к ТСП без проведения оплаты СБП C2B.
Последующие платежи с привязанного счета в адрес данного ТСП в рамках операций СБП C2B будут выполняться без участия Плательщика.
Сценарий может применяться как для разовых, так и для регулярных платежей.
1.1. Метод RegQRcSub
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «RegQRcSub». |
| TermNo | String (an-20) | y | Уникальный идентификатор терминала. |
| qrcType | String (an-32) | y | Тип запрашиваемого QR-кода. Константа — «03». |
| subscriptionPurpose | String (ans-140) | y | Цель привязки счета. Информация от ТСП с деталями привязки счета. Данная информация будет отображаться на экране Плательщика при оформлении привязки счета в ДБО Банка Плательщика. Рекомендуется указывать подробную информацию о привязке счета, включая, если применимо, регулярность платежей, сумму регулярных платежей и прочее*. |
| queryData.notificationUrl | String (ans-512) | y | Полный URL для получения уведомления о результате привязки счета. |
| qrTtl | String (an-1…6) | o | Срок жизни Функциональной ссылки СБП в минутах. Минимальное допустимое значение — «1». Максимальное допустимое значение — «129 600» (90 дней). Рекомендация: устанавливать срок жизни Функциональной ссылки СБП не менее «5» минут. Если поле «qrTtl» не передано в запросе, будет использовано значение по умолчанию — «4 320» минут (3 суток). |
| redirectUrl | String (ans-1024) | о | Содержит ссылку для автоматического возврата в приложение или на интернет страницу. Допускаются только символы в кодировке ASCII. Формат должен соответствовать правилам кодировки URL. Если все же требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986. |
Если требуется сформировать QR-код для привязки дополнительного счёта Плательщика в том же Банке
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| subscriptionServiceId | String (32) | о | Идентификатор привязки. Обязательно при наличии subscriptionServiceName, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность. |
| subscriptionServiceName | String (70) | о | Наименование привязки. Обязательно при наличии subscriptionServiceId, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность. |
b) Примерный формат запроса:
1{ 2 "command":"RegQRcSub", 3 "TermNo":"90080567", 4 "qrTtl":"10", 5 "qrcType":"03", 6 "subscriptionPurpose":"Подписка на оплату услуг Интернет 500р./мес.", 7 "queryData": 8 { 9 "notificationUrl":"https://sbp-subscription" 10 }, 11 "redirectUrl":"https://exampletsp.io/qwertyui" 12 }
Примечание: При отсутствии данных в поле subscriptionPurpose ответ вернется с ошибкой:
{ "ErrorCode": 30, "message": "Отсутствуют данные в полях: subscriptionPurpose" }
c) Описание параметров ответа:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| ErrorCode | String (an-20) | y | Код ответа*. |
| message | String (ans-1024) | y | Расшифровка кода ответа**. |
| qrcId | String (an-32) | y | Идентификатор QR-кода. |
| payload | String (1…999) | y | Платежная ссылка***. |
| payrrn | String (an-12) | y | Референсный идентификатор запроса в системе Банка |
*, ** Таблица возможных кодов ответа приведена в приложении 2.
*** Формат payload может быть двух видов:
d) Примерный формат ответа
200 OK
{ "ErrorCode":"RQ00000", "message":"Запрос обработан успешно", "qrcId":"AB1S000V3LEOSC2C8HU8H1B06C6P1P5L ", "payload":"https://sub.nspk.ru/AB1S000V3LEOSC2C8HU8H1B06C6P1P5L", "payrrn":" 000096116491 " }
Примечание: текстовые данные передаются в формате urlencoded.
400 Bad Request
{ "ErrorCode":"Код ответа", "message":"Расшифровка кода ответа" }
Результатом выполнения запроса «Регистрация QR-кода для привязки счета/подписки по СБП» является передача Банком Плательщика следующих параметров:
«subscriptionToken» — Уникальный Идентификатор привязки счета, назначаемый Банком Плательщика;
«memberId» – Идентификатор банка Плательщика.
Важно:
Значения параметров «subscriptionToken» и «memberId» необходимо хранить в системе ТСП для дальнейшего использования ТСП в сценарии «Оплата с привязанного счета по инициативе ТСП». В случае отсутствия или утери значения параметра «subscriptionToken», привязку счета необходимо выполнить повторно.
Для получения значений параметров «subscriptionToken» и «memberId» ТСП необходимо реализовать возможность получения callback уведомлений.
Запрос отправляется из ПШ Банка во внутреннюю систему ТСП на URL адрес, указанный в параметре «queryData.notificationUrl» при направлении запроса «RegQRcSub».
Метод «subscription/notification»
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «subscription/notification». |
| сode | String (an-7) | y | Возможные варианты кодов ответа: — «RQ00000» — Запрос обработан успешно; — «RQ05030» — Плательщик отказался от оформления подписки. |
| message | String (ans-255) | y | Расшифровка кода ответа*. |
| status | String (an-10) | y | Возможные статусы оформления подписки: — «ACWP» — подписка оформлена; — «RJCT» — подписка не оформлена. |
| qrcId | String (an-32) | y | Идентификатор QR-кода |
| subscriptionToken | String (an-32) | o | Идентификатор Подписки, назначаемый Банком Плательщика. Отсутствует, если Плательщик не дал согласие на оформление подписки. |
| memberId | String (an-12) | o | Идентификатор Банка Плательщика. Отсутствует, если Плательщик не дал согласие на оформление подписки. |
* Таблица возможных кодов ответа приведена в приложении 2.
b) Примерный формат запроса при согласии Плательщика совершить привязку счёта:
{ "command":"subscription/notification ", "сode":"RQ00000", "message":"Привязка счета оформлена", "status":"ACWP", "qrcId":"BB1S0053V5S91S2E83RPL8THQSRS7O8K", "subscriptionToken":"6feeacc6a74648589285346e3785ad9e", "memberId":"100000000008" }
c) Примерный формат запроса при отказе Плательщика совершить привязку счёта:
{ "command":"subscription/notification", "сode":"RQ05030", "message":"Плательщик отказался от привязки счета", "status":"RJCT", "qrcId":"BB1S0053V5S91S2E83RPL8THQSRS7O8K", "subscriptionToken":"00000000000000000000000000000000", "memberId ":"100000000008" }
d) ВС ТСП отвечает http-кодом «200» — успешное получение нотификации, или ошибкой.
В настоящий момент ответ ВС не обрабатывается шлюзом Альфа-Банка. Обработка ответов ТСП находится в разработке.
В случае добавления со стороны НСПК дополнительных параметров уведомления, система принимающая их от шлюза Альфа-Банка не должна рассматривать такие неожиданные параметры как ошибочный запрос.
Запрос «Оплата по QR-коду с последующей привязкой/подпиской по СБП» позволяет Плательщику выполнить разовую оплату в рамках операции СБП C2B с последующей привязкой своего банковского счета к ТСП.
Последующие платежи с привязанного счета в адрес данного ТСП будут выполняться без участия Плательщика.
Регистрация Функциональной ссылки СБП для выполнения оплаты с последующей привязкой счета представляет собой регистрацию одноразовой Платежной ссылки с "qrcType"="02" с дополнительным параметром "subscriptionPurpose" (информация от ТСП с деталями привязки счета).
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «GetQRCd». |
| TermNo | String (an-20) | y | Уникальный идентификатор терминала. |
| amount | Number | y | Сумма платежа в минорных единицах (копейках). |
| currency | String (ans-3) | y | Код валюты (для рублей должен передаваться «RUB»). |
| width | String | o | Ширина картинки QR-кода (только числовое значение). |
| height | String | o | Высота картинки QR-кода (только числовое значение). |
| qrcType | String (n-2) | y | Тип запрашиваемого QR-кода. Константа — «02». |
| paymentPurpose | String (ans-140) | o | Назначение платежа. |
| messageID | String (an-1…1024) | o | Уникальный идентификатор сообщения, GUID. Только латинские символы! |
| qrTtl | String (an-1…6) | o | Срок жизни Функциональной ссылки СБП в минутах. Минимальное допустимое значение — «1». Максимальное допустимое значение — «129 600» (90 дней). Рекомендация: устанавливать срок жизни Функциональной ссылки СБП не менее «5» минут. Если поле «qrTtl» не передано в запросе, будет использовано значение по умолчанию — «4 320» минут (3 суток). |
| queryData.notificationUrl | String (ans-512) | y | Полный URL для получения уведомления о финальном статусе оплаты QR-кода, а также о результате привязки счёта. |
| queryData.notificationUrl_sub | String (ans-512) | o | Полный URL для получения уведомления о результате привязки счета. В случае указания значения в данном поле, на указанный URL адрес будет направлено одно отдельное уведомление о результате привязки счета Плательщика. |
| subscriptionPurpose | String (ans-140) | y | Цель привязки счета. Информация от ТСП с деталями привязки счета. Данная информация будет отображаться на экране Плательщика при оформлении привязки счета в ДБО Банка Плательщика. Рекомендуется указывать подробную информацию о привязке счета, включая, если применимо, регулярность платежей, сумму регулярных платежей и прочее*. |
| redirectUrl | String (ans-1024) | o | Содержит ссылку для автоматического возврата в приложение или на сайт ТСП. Допускаются только символы кодировке ASCII. Формат должен соответствовать правилам кодировки URL. Если все же требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986. |
Если требуется сформировать QR-код для привязки дополнительного счёта Плательщика в том же Банке
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| subscriptionServiceId | String (32) | o | Идентификатор привязки. Обязательно при наличии subscriptionServiceName, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность. |
| subscriptionServiceName | String (70) | o | Наименование привязки. Обязательно при наличии subscriptionServiceId, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность. |
Если требуется сформировать динамический QR-код под определенного Плательщика, то необходимо использовать следующие поля:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| queryData.SenderFIO | String (an-140) | o | Фамилия, Имя и Отчество Плательщика (не является регистрозависимым) |
| queryData.SenderID | String (an-11.13) | o | Идентификатор Плательщика (номер телефона Плательщика — 0079123456789) |
| queryData.SenderBankBIC | String (n-9) | o | БИК Банка Плательщика |
Важно! При отсутствии данных в параметре subscriptionPurpose будет зарегистрирована обычная одноразовая Платежная ссылка СБП с "qrcType"="02" без возможности совершить привязку счета.
b) Примерный формат запроса:
1{ 2 "command":"GetQRCd", 3 "TermNo":"90080567", 4 "amount":"10000", 5 "currency":"RUB", 6 "qrcType":"02", 7 "paymentPurpose":"Назначение платежа", 8 "subscriptionPurpose":"Подписка на оплату услуг Интернет 500р./мес.", 9 "width":"600", 10 "height":"600", 11 "qrTtl":"10", 12 "messageID":"message", 13 "queryData": 14 { 15 "notificationUrl":"https://sbp-payments", 16 "notificationUrl_sub":"https://sbp-subscription" 17 }, 18 "redirectUrl": "https://exampletsp.io/qwertyui" 19}
c) Описание параметров ответа:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| ErrorCode | String (an-20) | y | Код ответа*. |
| TermNo | String (an-20) | y | Уникальный идентификатор терминала. |
| image | String(an) Длинна зависит от формата, порядок 7000 символов. | y
| Изображение QR-кода содержит энкодированный BASE64 файл изображения QR-кода 300×300 pix формата .png |
| message | String (ans-1024) | y | Расшифровка кода ответа**. |
| payload | String (1…999) | y | Платежная ссылка***. |
| messageID | String (ans-1024) | o | Уникальный идентификатор сообщения, GUID |
| payrrn | String (n-12) | y | Референсный идентификатор запроса в системе Банка |
| qrcId | String (an-32) | y | Идентификатор QR-кода |
| status | String (n-7) | y | Статус регистрации Платежной ссылки СБП |
*, ** Таблица возможных кодов ответа приведена в приложении 2.
*** Формат payload может быть двух видов:
d) Примерный формат ответа:
200 OK
1{ 2 "ErrorCode": 0, 3 "TermNo": 90080567, 4 "image":"iVBORw0KGgoAAAANSUhEUgAAghjysAAAAgjjafggkqqBEoAAARKCAIAAAQA/w……………...........YIAI", 5 "message":"%u0423%u0441%u043F%u0435%u0445", 6 "messageID":"message", 7 "payload":" https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJLK", 8 "payrrn":"000022134348", 9 "qrcId":"AS1000670LSS7DN18SJQDNP4B05KLJLK ", 10 "status":"CREATED" 11}
Примечание: текстовые данные передаются в формате urlencoded.
400 Bad Request
{ "ErrorCode":"Код ответа", "message":"Расшифровка кода ответа" }
Результатом выполнения запроса «Оплата по QR-коду с последующей привязкой/подпиской по СБП» является передача Банком Плательщика (банк-эмитент) следующих параметров:
«subscriptionToken» — Уникальный Идентификатор привязки счета, назначаемый Банком Плательщика;
«memberId» – Идентификатор банка Плательщика.
Важно:
Значения параметров "subscriptionToken" и "memberId" необходимо хранить в системе ТСП для дальнейшего использования ТСП в сценарии «Оплата с привязанного счета по инициативе ТСП». В случае отсутствия или утери значения параметра "subscriptionToken", привязку счета необходимо выполнить повторно.
Для получения значений параметров "subscriptionToken" и "memberId" ТСП необходимо реализовать возможность получения callback уведомлений.
Запросы о нотификации отправляются из ПШ Банка во внутреннюю систему ТСП на URL адрес, указанный в параметре «queryData.notificationUrl» или «queryData.notificationUrl_sub» при направлении запроса «GetQRCd».
Информация о возможных сценариях нотификации:
При успешной оплате и успешной привязке счёта в адрес ТСП направляется два callback уведомления:
об успешности оплаты по QR-коду — метод «qrc/notification»;
об успешности привязки счета — метод «subscription/notification».
Если Плательщик совершил оплату, но отказался от привязки счета, то в ТСП направляется два callback уведомления:
об успешности оплаты по QR-коду (метод «qrc/notification»);
об отказе Плательщика от привязки счета (метод «subscription/notification»).
Если Плательщик не стал совершать оплату, то привязка счета ему не предлагается, в ТСП callback уведомление не направляется.
Запрос «Оплата с привязанного счета по инициативе ТСП» позволяет по запросу ТСП выполнить оплату в рамках операции СБП C2B со счета Плательщика, привязка которого была выполнена ранее в рамках запроса «Регистрация QR-кода для привязки счета/подписки по СБП» или «Оплата по QR-коду с последующей привязкой счета/подпиской по СБП». Сценарий может применяться как для разовых, так и для регулярных платежей.
Для выполнения оплаты с привязанного счета необходимо направить в платежный шлюз Банка два последовательных запроса:
Запрос «GetQRCd» на генерирование Платежной ссылки со значением параметра qrcType = «02» и с обязательно заполненным значением параметра «paymentPurpose»;
Запрос «QRCSubPayPetition» на оплату с привязанного счёта с указанием:
идентификатора QR-кода, полученного в ответе на запрос GetQRCd;
идентификаторов «subscriptionToken» и «SenderMemberId», полученных в callback уведомлении по методу «subscription/notification».
В случае удаления Плательщиком привязки счета Банк Плательщика, получив запрос по сценарию «Оплата с привязанного счета по инициативе ТСП», отклоняет запрос и направляет в адрес ТСП нотификацию с сообщением — «Привязка счета не найдена».
Оплату с привязанного счета можно проводить на сумму до 1 000 000 руб.
Метод «GetQRCd»
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «GetQRCd». |
| TermNo | String (an-20) | y | Уникальный идентификатор терминала. |
| amount | Number | y | Сумма платежа в минорных единицах (копейках). |
| currency | String (ans-3) | y | Код валюты (для рублей должен передаваться «RUB»). |
| width | String | o | Ширина картинки QR-кода (только числовое значение). |
| height | String | o | Высота картинки QR-кода (только числовое значение). |
| qrcType | String (n-2) | y | Тип запрашиваемого QR-кода. Константа — «02». |
| paymentPurpose | String (ans-140) | y | Назначение платежа. Обязательно к заполнению в сценарии «Оплата с привязанного счета по инициативе ТСП». |
| messageID | String (an-1…1024) | o | Уникальный идентификатор сообщения, GUID. Только латинские символы! |
| qrTtl | String (an-1…6) | o | Срок жизни Функциональной ссылки СБП в минутах. Минимальное допустимое значение — «1». Максимальное допустимое значение — «129 600» (90 дней). Рекомендация: устанавливать срок жизни Функциональной ссылки СБП не менее «5» минут. Если поле «qrTtl» не передано в запросе, будет использовано значение по умолчанию — «4 320» минут (3 суток). |
| queryData.notificationUrl | String (ans-512) | y | Полный URL для получения уведомления о решении Банка Плательщика по оплате с привязанного счёта, а также о финальном статусе оплаты QR-кода. |
queryData.notificationUrl_subRes | String (ans-512) | o | Полный URL для получения уведомления о решении Банка Плательщика по оплате с привязанного счета. В случае указания значения в данном поле, на указанный URL адрес будет направлено одно отдельное уведомление о решении Банка Плательщика по оплате с привязанного счета. |
| redirectUrl | String (ans-1024) | o | Содержит ссылку для автоматического возврата в приложение или на сайт ТСП. Допускаются только символы кодировке ASCII. Формат должен соответствовать правилам кодировки URL. Если все же требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986. |
b) Примерный формат запроса:
1{ 2 "command":"GetQRCd", 3 "TermNo":"90080567", 4 "amount":"10000", 5 "currency":"RUB", 6 "qrcType":"02", 7 "paymentPurpose":"Назначение платежа", 8 "width":"600", 9 "height":"600", 10 "qrTtl":"10", 11 "messageID":"message", 12 "queryData": 13 { 14 "notificationUrl":"https://sbp-payments", 15 "notificationUrl_subRes":"https://sbp-subscription_ resolution" 16 }, 17 "redirectUrl": "https://exampletsp.io/qwertyui" 18}
c) Описание параметров ответа:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| ErrorCode | String (an-20) | y | Код ответа*. |
| TermNo | String (an-20) | y | Уникальный идентификатор терминала. |
| image | String (an) Длинна зависит от формата, порядок 7000 символов. | y
| Изображение QR-кода содержит энкодированный BASE64 файл изображения QR-кода 300×300 pix формата .png |
| message | String (ans-1024) | y | Расшифровка кода ответа**. |
| messageID | String (ans-1024) | o | Уникальный идентификатор сообщения, GUID. |
| payload | String (1…999) | y | Платежная ссылка***. |
| payrrn | String (n-12) | y | Референсный идентификатор запроса в системе Банка. |
| qrcId | String (an-32) | y | Идентификатор QR-кода. |
| status | String (n-7) | y | Статус регистрации Платежной ссылки СБП |
*, ** Таблица возможных кодов ответа приведена в приложении 2.
*** Формат payload может быть двух видов:
d) Примерный формат ответа:
200 OK
1{ 2 "ErrorCode": 0, 3 "TermNo": 90080567, 4 "image": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC 5 "message": "%u0423%u0441%u043F%u0435%u0445", 6 "messageID": "message", 7 "payload": "https://qr.nspk.ru/AD10000BBJKO23GB98LA1FGBRIHH3K89?type=02&bank=100000000008&sum=10000&cur=RUB&crc=D87E", 8 "payrrn": "000755856505", 9 "qrcId": "AD10000BBJKO23GB98LA1FGBRIHH3K89", 10 "status": "CREATED" 11}
Примечание: текстовые данные передаются в формате urlencoded.
400 Bad Request
{ "ErrorCode":"Код ответа", "message":"Расшифровка кода ответа" }
Метод QRCSubPayPetition используется ТСП для того, чтобы Банк Плательщика выполнил оплату с привязанного счета.
Метод «QRCSubPayPetition»
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «QRCSubPayPetition». |
| TermNo | String (an-20) | y | Уникальный идентификатор терминала. |
| subscriptionToken | String (an-32) | y | Идентификатор Привязки счета, назначенный Банком Плательщика ранее на этапе оформления привязки счета*. |
| SenderMemberId | String (an-12) | y | Идентификатор банка Плательщика. |
| qrcId | String (an-32) | y | Идентификатор QR-кода. |
* Если привязка счета была подтверждена Плательщиком, Банк Плательщика в обязательном порядке должен передать параметр «subscriptionToken» — Уникальный Идентификатор привязки счета. Уникальный Идентификатор привязки счета должен однозначно идентифицировать согласие Плательщика в Банке Плательщика.
b) Примерный формат запроса:
{ "command":"QRCSubPayPetition ", "TermNo":"90080567", "subscriptionToken":"70LSS7DN18SJQRS10006DNPKLJL24B05" "SenderMemberId":"100000000008", "qrcId":" AD10000BBJKO23GB98LA1FGBRIHH3K89" }
c) Описание параметров ответа:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| ErrorCode | String (an-20) | y | Код ответа*. |
| message | String (ans-140) | y | Расшифровка кода ответа**. |
*, ** Таблица возможных кодов ответа приведена в приложении 2.
d) Примерный формат ответа:
200 OK
{ "ErrorCode":"RQ00000", "message":"Запрос обработан успешно" }
400 Bad Request
{ "ErrorCode":"Код ответа", "message":"Расшифровка кода ответа" }
Запросы о нотификации отправляются из ПШ Банка во внутреннюю систему ТСП на URL адрес, указанный в параметре «queryData.notificationUrl» или «queryData.notificationUrl_subRes» при направлении запроса «GetQRCd».
Нотификация по оплате с привязанного счёта состоит из двух уведомлений:
Уведомление о согласии/отказе в проведении платежа — метод «resolution /notification»;
Уведомление о проведении/отказе в проведении платежа по QR-коду — метод «qrc/notification».
Метод «resolution /notification»
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «resolution/notification» |
| code | String (an-7) | y | Возможные варианты кодов ответа: «RQ00030» — Согласие Банка Плательщика на выполнение платежа «RQ05031» — Отказ Банка Плательщика. Привязка счета не найдена «RQ05032» — Отказ Банка Плательщика в выполнении платежа «RQ05060» — Недостаточно денежных средств для проведения операции «RQ05061» — Превышен лимит по сумме операций по СБП «RQ05062» — Превышен лимит по количеству операций по СБП «RQ05063» — Подозрение в мошенничестве «RQ05064» — Выполнение операций в данной категории ТСП запрещено «RQ05065» — Счёт заблокирован «RQ05066» — Счёт закрыт «RQ05067» — Выполнение операции запрещено по требованию законодательства |
| message | String (ans-1…1024) | y | Расшифровка кода ответа*. |
| qrcId | String (an-32) | y | Идентификатор QR-кода |
* Таблица возможных кодов ответа приведена в приложении 2.
b) Примерный формат запроса при успешной оплате с привязанного счета:
{ "command":"resolution/notification ", "code":" RQ00030", "message":" Согласие на проведение платежа ", "qrcId":" BD10006FEU7CQ9VE8D383VP0O2VH78D9", }
c) Примерный формат запроса в случае если недостаточно денежных средств на счёте Плательщика/сумма больше установленного лимита:
{ "command":" resolution/notification ", "code":" RQ05032", "message":" Отказ в выполнении платежа ", "qrcId":" BD10004KH55FOMC48QIR3FCDEHVLA23F ", }
d) Примерный формат запроса в случае направления запроса ТСП на оплату с привязанного счета, когда привязка счета была успешно создана, но позже Плательщиком удалена:
{ "command":" resolution/notification ", "code":"RQ05031", "message":"Привязка счета не найдена ", "qrcId":" BD10004KH55FOMC48QIR3FCDEHVLA23F ", }
e) ВС ТСП отвечает http-кодом «200» — успешное получение нотификации, или ошибкой.
В настоящий момент ответ ВС не обрабатывается шлюзом Альфа-Банка. Обработка ответов ТСП находится в разработке.
В случае добавления со стороны НСПК дополнительных параметров уведомления, система принимающая их от шлюза Альфа-Банка не должна рассматривать такие неожиданные параметры как ошибочный запрос.
Запрос предназначен для попытки уточнения в ПШ Банка привязки счета со стороны ТСП.
Метод GetQRCSubStatus.
a) Описание параметров запроса:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| command | String (an-1…50) | y | Тип запроса. Константа «GetQRCSubStatus». |
| TermNo | String (an-20) | y | Уникальный идентификатор терминала. |
| qrcId | String(an-32) | y | Идентификатор QR-кода. |
| RQperiod | String(n-3) | o | Период времени, за который нужно искать уведомление для Агенета ТСП о решении Банка Плательщика по привязке счета. (опционально*). |
*Если параметр не передан в запросе, то поиск будет осуществляться без ограничения по времени.
b) Примерный формат запроса:
{ "command":"GetQRCSubStatus", "TermNo":"90080567", "qrcId":"BB1S002PRSK6SR3E9R7P0H077UKN1QVF", "RQperiod":"14" }
c) Описание параметров ответа:
| Код ключа | Тип данных | required | Назначение |
|---|---|---|---|
| ErrorCode | String (an-20) | y | Код ответа*. |
| message | String (ans-140) | y | Расшифровка кода ответа**. |
| qrcId | String(an-32) | o | Идентификатор QR-кода. |
| status | String(a-4) | o | Статус выполнения привязки счета Плательщика. |
| subscriptionToken | String(an-32) | o | Уникальный идентификатор привязки счета Плательщика в Банке Плательщика. |
| memberId | String(an-12) | o | Идентификатор Банка Плательщика. |
| notifyDate | String(ans-19) | o | Дата получения уведомления о результате выполнения привязки счета Плательщика. |
*, ** Таблица возможных кодов ответа приведена в приложении 2.
Примечание:
Если уведомление найдено, то в ответе будет присутствовать параметр «status».
Если в ходе выполнения запроса возникла ошибка обработки запроса, то в ответе будут переданы только код ошибки не равный нулю и описание ошибки.
Если уведомление не было найдено (не получено от НСПК), то запрос будет считаться успешно выполненным и в ответе будет передан код ошибки и описание, соответствующее успешному ответу, но без дополнительных параметров.
d) Примерный формат ответа:
200 OK
{ "ErrorCode": 0, "memberId": 600000000015, "message": "OK", "qrcId": "BB1S002PRSK6SR3E9R7P0H077UKN1QVF", "status": "ACWP", "subscriptionToken": "70LSS7DN18SJQRS10006DNPKLJLAGT77" }
Примечание: текстовые данные передаются в формате urlencoded.
400 Bad Request
{ "ErrorCode":"Код ответа", "message":"Расшифровка кода ответа" }